// 知识点1：面对对象编程OOP和泛型编程都能处理在编写程序时不知道类型的情况，而OOP能处理类型在程序运行之前都未知的情况，在泛型编程中，在编译时就能获知类型了

// 知识点2：容器、迭代器、算法都是泛型编程的例子

// 知识点3：模版是C++泛型编程的基础，一个模版就是一个类或函数的蓝图或者说是公式：例如在使用vector这样的泛型类型，或者是find函数这样的泛型类型，我们可以将蓝图转换为特定的类或者是函数，这种转换发生在编译时，16章主要学习如何定义一个模版

// 知识点4：一个函数模版就是一个公式，可用来生成指定类型的函数版本

// 知识点5：模版定义从template开始，后跟一个模版参数列表，用两个小尖括号包起来，参数列表不能为空

template <typename T>
int campare(const T& v1, const T& v2) {
  if (v1 > v2) {
    return 1;
  } else {
    return -1;
  }
  return 0;
}